#ifndef __SMOOTH_BASE_H__
#define __SMOOTH_BASE_H__

#include <ros/ros.h>
#include <geometry_msgs/Pose.h>
using namespace std;

#include <mc_core/common/core.h>
#include <mc_core/msg_convert/msg_convert.h>
#include <mc_map/map_base.h>

class SmoothBase{
    public:
        using Point2i = mc::Point2i;
        using Point2f = mc::Point2f;
    
    public:
        SmoothBase(boost::shared_ptr<MapBase> map_handler_ptr)
            :mapHandlerPtr_(map_handler_ptr){};
        ~SmoothBase(){}
    
        // 路径平滑函数
        virtual void smoothPath(vector<Point2f>& points_in, vector<Point2f>& points_out) = 0;

    protected:
        boost::shared_ptr<MapBase> mapHandlerPtr_;
};

#endif